<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    
</body>
<script>
    /*对象:具体的事物，包括了属性和行为。
        //属性:对象中的变量;	行为:属性中的方法(函数)	
    如何创建对象?
        1.字面里创建对象,使用较多
        2.用构造函数创建对象
        step3;用object()创建对象
    */
    console.log('--------字面里创建对象-------------');
    let cat={
        color: 'white',
         eye: '棕色',
          weight:'10kg', 
        run: function(){
        console.log('running' );
        }
    };
    //访问对象
    console.log(cat.color);//打印猫的颜色
    cat.run();//对象里的函数调用:对象名.函数名(); 
    let kq={};//也是对象，只不过是空对象
    console.log('-----------用构造函数创建对象------------');
    //构造函数:是一种特殊的函数，能通过这个函数构造一个对象(new)。
    //为区别于普通函数，一般构造函数名的首字母大写。
    /*step1.定义一个构造函数，在函数中描述对象的属性和行为 
    step2.用关键字new构造一个对象
    */
   
   function Dog(name,age,weight,color){ 
    //this关键字:指当前对象 
    this.name=name; 
    this.age=age;
    this.weight=weight; 
    this.color=color;
    this.dance=function(){
        //${this.name}模板字符
        console.log(`${this.name}在跳舞...`);//`${}`在书本28页
        }
    }
    //构造对象:用new关键字实例化对象
    	let dog=new Dog('富贵',2,'15kg','白色');
    	console.log(this.name);	
    	console.log(dog.color);	
        dog.dance(); 
        console.log('---------------------------------');
        let wang=new Dog('旺财',2,'15kg','灰色');
        console.log(wang.color);
        wang.dance();
        console.log('--------------用object()创建对象-------------------');
        let obj=new Object();	//实例化一个空的object	
        obj.name='1ihua'; 
        obj.age=19;
        obj.class='计算机三班'	
        obj.play=function(){	
            console.log(obj.class+"在打游戏");
        };
    //访问对象
    console.log(obj.class); 
    obj.play();

    console.log('--------------------------------');
    function New(name,height, content,color){ 
        this.name=name; 
        this.height=height; 
        this.content=content; 
        this.color-color;
        this.video=function(){
            console.log(this.name+"正在播放");
        }
    }
    let shi=new New('上海东方明珠","600m","东方明珠广播电视塔,简称”东方明末”,位于上海市浦东新区陆家嘴世纪大道1号口地处 黄浦江畔，背期陆家嘴地区现代化建筑楼群，与隔江的 外到万国建筑博员群交相国映1991年7月30日动工建造1994年10月1日建成投入使用');
    console.log(shi.color);
    console.log(shi.content); 
    shi.video();
    //遍历对象for...in 
    for(let i in shi){
        console.log(i);//获取该对象所有属性和方法的名
        //判断获取的值的数据类型是否为function,如果是则应该调用方法 
        if(typeof shi[i]==='function'){
            shi[i]();
        }else{
            console.log(i+':'+shi[i]);//获取该像所有困性和方法的值
        }
        // console.log(shi[i]);
        //获该对像所有属性和方法的值
    }
        
</script>	
</html>